package com.wordlearning.app.repository;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wordlearning.app.entity.StudyPlan;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Optional;

@Mapper
public interface StudyPlanRepository extends BaseMapper<StudyPlan> {

    public List<StudyPlan> findByUserId(Long userId);
    
    public List<StudyPlan> findByUserIdAndStatus(Long userId, String status);
    
    // 根据ID查询学习计划
    public Optional<StudyPlan> selectById(Long id);
    
    // 查询所有学习计划
    public List<StudyPlan> selectList();
    
    // 批量查询学习计划
    public List<StudyPlan> selectBatchIds(List<Long> ids);
    
    // 新增学习计划
    public int insert(StudyPlan studyPlan);
    
    // 更新学习计划
    public int updateById(StudyPlan studyPlan);
    
    // 删除学习计划
    public int deleteById(Long id);
    
    // 批量删除学习计划
    public int deleteBatchIds(List<Long> ids);
    
    // 更新学习计划状态
    public int updateStatus(@Param("id") Long id, @Param("status") String status, @Param("updatedAt") java.time.LocalDateTime updatedAt);
    
    // 增加已完成数量
    public int increaseCompletedCount(@Param("id") Long id, @Param("updatedAt") java.time.LocalDateTime updatedAt);

}